package org.jeecg.modules.zcgl.vo.statistical;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.constant.CommonConstant;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 尹涛 * @version V1.0.0
 * @projectName kangxiang-parent
 * @title CustomerPaymentVo
 * @package org.jeecg.modules.zcgl.vo.statistical
 * @description 客户缴费统计
 * @date 2021-06-01
 */
@Data
public class CustomerPaymentVo {

    @Excel(name = "客户名称", width = 15, dictTable = "zcgl_customer_info", dicText = "CONCAT_WS( ';', `name`, phone )", dicCode = "id", pullDown = false)
    @Dict(dictTable = "zcgl_customer_info", dicText = "CONCAT_WS( ' ', `name`, phone )", dicCode = "id")
    @ApiModelProperty(value = "客户名称")
    private String customerId;

    @Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系电话")
    private String phone;

    @Excel(name = "身份证号/信用代码", width = 15)
    @ApiModelProperty(value = "身份证号/信用代码")
    private String code;

    @Excel(name = "合同编号", width = 15)
    @ApiModelProperty(value = "合同编号")
    private String contractNum;

    @Excel(name = "出租方名称", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id", dicKey ="parent_id='" + CommonConstant.BASE_DEPART_ID + "'")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "出租方名称")
    private String rentCompanyId;

    @Excel(name = "管理单位", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id", dicKey ="parent_id='" + CommonConstant.BASE_DEPART_ID + "'")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    private String companyId;

    @Excel(name = "资产名称", width = 15, dictTable = "zcgl_asset_info", dicText = "asset_name", dicCode = "id", pullDown = false)
    @Dict(dictTable = "zcgl_asset_info", dicText = "asset_name", dicCode = "id")
    @ApiModelProperty(value = "资产名称")
    private String assetId;

    @Excel(name = "资产明细", width = 15, dictTable = "zcgl_asset_info_sub", dicText = "room_name", dicCode = "id", pullDown = false)
    @Dict(dictTable = "zcgl_asset_info_sub", dicText = "room_name", dicCode = "id")
    @ApiModelProperty(value = "资产明细")
    private String assetSubIds;

    @Excel(name = "合同总金额", width = 15)
    @ApiModelProperty(value = "合同总金额")
    private BigDecimal contractCash;

    @Excel(name = "合同租金", width = 15)
    @ApiModelProperty(value = "合同租金")
    private BigDecimal monthlyRent;

    @Excel(name = "保证金", width = 15)
    @ApiModelProperty(value = "保证金")
    private BigDecimal cashDeposit;

    @Excel(name = "其他金额", width = 15)
    @ApiModelProperty(value = "其他金额")
    private BigDecimal otherCash;

    @Excel(name = "合同租金", width = 15)
    @ApiModelProperty(value = "合同租金")
    private BigDecimal aMonthlyRent;

    @Excel(name = "保证金", width = 15)
    @ApiModelProperty(value = "保证金")
    private BigDecimal aCashDeposit;

    @Excel(name = "其他金额", width = 15)
    @ApiModelProperty(value = "其他金额")
    private BigDecimal aOtherCash;

    @Excel(name = "已发生金额合计", width = 15)
    @ApiModelProperty(value = "已发生金额")
    private BigDecimal amountIncurred;


    @Excel(name = "合同租金", width = 15)
    @ApiModelProperty(value = "合同租金")
    private BigDecimal bMonthlyRent;

    @Excel(name = "保证金", width = 15)
    @ApiModelProperty(value = "保证金")
    private BigDecimal bCashDeposit;

    @Excel(name = "其他金额", width = 15)
    @ApiModelProperty(value = "其他金额")
    private BigDecimal bOtherCash;

    @Excel(name = "已缴纳额合计", width = 15)
    @ApiModelProperty(value = "已缴纳额合计")
    private BigDecimal amountPaid;

    @Excel(name = "合同租金", width = 15)
    @ApiModelProperty(value = "合同租金")
    private BigDecimal cMonthlyRent;

    @Excel(name = "保证金", width = 15)
    @ApiModelProperty(value = "保证金")
    private BigDecimal cCashDeposit;

    @Excel(name = "其他金额", width = 15)
    @ApiModelProperty(value = "其他金额")
    private BigDecimal cOtherCash;

    @Excel(name = "未缴纳合计", width = 15)
    @ApiModelProperty(value = "未缴纳合计")
    private BigDecimal outStandingAmount;



    //查询参数
    private String selections;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "起租时间")
    private Date rentStartTime_begin;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "起租时间")
    private Date rentStartTime_end;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "到租时间")
    private Date rentEndTime_begin;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "到租时间")
    private Date rentEndTime_end;

    @ApiModelProperty(value = "合同状态")
    private Integer status;

    @ApiModelProperty(value = "付费状态")
    private Integer payType;

}
